画布 1
资源管理概述
  资源管理概述
    资源管理功能
      数据结构描述
      调度原则
      资源分配的实现
      安全保护
    分配类型
      静态分配
        在进程运行前,操作系统一开始就把他所要的全部资源都分配
      动态分配
        进程在运行的过程中,边运行边向操作系统提出申请,操作系统根据申请分配资源
      宏观上
        作业调度
      微观上
        进程调度
      一个大的作业是若干个小的进程组成的
    虚拟资源
      物理资源 (实资源)
      虚拟资源 (逻辑资源)
  资源分配的机构和策略
    资源分配的机构
      资源描述器
        描述各类资源的最小分配单位的数据结构
        资源名,类型,大小,地址,分配标志,描述器连接信息,存取权限等
      资源信息块
        等待队列头指针>请求者队列
        可利用资源队列头指针
        资源分配程序入口地址
    资源分配策略
      先请求先服务
        队列结构:每一次新产生的请求在队尾,
        当资源可用的时候取队首元素,并满足其需要.
        先来的请在队列首部,后来的在队列末尾
      优先调度
        对每一个进程指定一个优先级；
        每一个新产生的请求，按其优先级的高低插到相应的位置,优先级越高,月靠近队首,优先级越低,月靠近队尾.
        当资源可用时，取队首元素，并满足其需要。
      针对设备特性的调度策略
        磁盘
          磁盘的工作原理
            先移动磁盘的移动臂找到合适的柱面
            接着旋转这个柱面,找到要找的磁道和扇区
          调度策略
            移臂调度
              有多个I/O请求,怎样移动磁盘的移动臂来满足?
              SCAN:总是选取与当前移动臂前进方向上最近的那个I/O请求
              SSTF:总是选取与当前移动臂位置距离最短的那个I/O请求
            旋转调度
              总是选取与当前读写头最近的那个I/O请求
            先执行移臂调度在执行旋转调度
  死锁
    定义
      在两个或多个并发进程中，如果每个进程持有某种资源而又都等待着别的进程释放它或它们现在保持着的资源，否则就不能向前推进。此时，称这一组进程产生了死锁。
      进程在占有某个资源而请求某种资源,当该进程占有的资源是别人请求的资源时,就可能产生死锁
    资源分配图
      两类顶点
        所有的进程P
        所有的资源R
      两类有向边
        资源请求边
          进程P请求资源R,P->R
        资源分配边
          资源R分配给进程P,R->P
    产生死锁的必要条件
      互斥条件
        涉及的资源是非共享的,为临界资源
        一个资源不能被两个进程同时获得
      不剥夺条件
        进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走.
      部分分配
        进程每次只申请他所需要的资源的一部分,在等待新一批资源的时候,进程继续占用分配到的资源
        进程每次只申请他需要资源的一部分,资源一旦分配给它,进程就会持续占有这一部分资源
      环路条件
        存在一种进程的循环链，链中的每一个进程已获得的资源同时被链中下一个进程所请求。
    解决死锁问题的策略
      把四个必要条件的其中一个弄成不满足
      死锁预防
        静态预防死锁
          在作业调度的时候就给选中的作业分配它所需要的全部资源,(一开始就分配所有资源给作业)
        有序资源分配法
          系统中所有资源都给定一个唯一的编号，所有分配请求必须以上升的次序进行。当遵守上升次序的规则时，若资源可用，则予以分配；
      死锁避免
        要求进程声明需要资源的最大数目,再分配资源的时候判断是否会出现死锁,只有在不会死锁的时候才分配资源
      死锁恢复
        破坏循环等待
          杀死有关进程和删除文件
      定理
        P个进程共享m个同类资源,如果所有进程对资源的最大需要数目之和小于p+m,这个就不会发生死锁.
    系统状态分析
      初始状态
        一组确定的进程集合
        一组不同类型的资源,以及各类可利用的资源数目
        资源分配矩阵:$a_{ij}$代表进程i占有j类资源数目
        资源请求矩阵:$d_{ij}$代表进程i还需要j类资源数目
      安全状态
        当进程请求某类资源时，进程对该类资源的需求量小于当前时刻系统所拥有的该类资源的数目，那么满足进程的这次请求，系统是安全的。
        要求进程声明需要资源的最大数目(进程最多最多就需要那么多资源),如果当前计算机剩余的资源大于进程声明所需要的总的资源.就称为安全的..
    银行家算法
      申请者事先说明对各类资源的最大需求量。在进程活动期间动态申请某类资源时，由系统审查现有该类资源的数目是否能满足当前进程的最大需求量，如能满足就予以分配，否则拒绝。
      当前剩余资源>该进程声明的最大需求量,就可以满足该进程的局部资源分配需求.